#ifndef GUI_IMPL_HPP_INCLUDED
#define GUI_IMPL_HPP_INCLUDED

class Image;
class test;
class States;

class GUIImpl
{
public:
	GUIImpl();
	virtual ~GUIImpl();
	
	virtual int Init(int argc, char** argv) = 0;
	virtual int MainLoop() = 0;
	virtual int CreateWindow() = 0;

	virtual void Update(const Image& image) = 0;
	virtual void DoEvents(int s) = 0;

	States *m_state;	
protected:
	void Start();
	void Stop();

	test *m_test;
private:

};

#endif // GUI_IMPL_HPP_INCLUDED
